package com.codingfuture.glacierdataapi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.codingfuture.glaciercommon.util.PageParam;
import com.codingfuture.glacierdataapi.dto.AlarmProcessRecordDTO;
import com.codingfuture.glacierdataapi.entity.AlarmRecord;
import com.codingfuture.glacierdataapi.vo.AlarmModeVo;
import com.codingfuture.glaciercommon.entity.Warehouse;
import com.codingfuture.glaciercommon.entity.MeterRecord;
import com.codingfuture.glacierdataapi.vo.AlarmRecordVO;
import com.codingfuture.glacierdataapi.vo.WarehouseAndMeterVO;
import com.codingfuture.glacierdataapi.vo.WarehouseDataVO;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @Author: Ji
 * @DateTime: 2025-04-09 17:09
 * @Description:
 **/
public interface DataApiService {
    List<WarehouseDataVO> getWarehouse(Long ids, Long companyId);

    List<WarehouseAndMeterVO> getMeterRecord(PageParam pageParam, Long companyId, Long statusesId);

    List<AlarmModeVo> getMode();

    boolean add(AlarmProcessRecordDTO alarmProcessRecordDTO);

    Page<AlarmRecord> getPage(Page<AlarmRecord> page, String warehouseSn,
                              LocalDateTime startTime, LocalDateTime endTime);

    Long count(String warehouseSn, LocalDateTime startTime, LocalDateTime endTime);
}
